iT邦幫忙

2024 iThome 鐵人賽

DAY 2
3

上一篇中,我們講述了系列的整體方向。現在,我將進一步深入,為你詳細介紹系列的架構與各個章節安排。

可以說,本文就是整個系列的藍圖。

一般而言,架構介紹通常會直接放在第一篇的後半段(如果有的話),但我決定獨立成一篇。

原因無他,我在整個教學架構上花費了相當的心思,希望為讀者提供一個全面的概覽。這有助於你快速進入狀況,並了解自己目前正在學習主題哪一個部分。

話不說多,讓我們一一介紹。


本系列共分為八章,只有第三章有細分小節——因為內容較多。

以下是各章節介紹。(各篇名稱與內容仍可能會有小幅調整,但整體架構不變)

第一章:導讀與 Django Ninja 介紹

開篇介紹本系列的主旨、定位,適合的目標讀者,以及學習 Django Ninja 的理由。

架構篇中,說明系列的安排與組成、每篇文章的主要內容與學習順序。

最後為讀者介紹 Django Ninja 與 Django REST Framework 等基本概念,包括彼此的定位與異同。

  • 卷 1:系列導讀 × 目標讀者
  • 卷 2:架構與章節導覽(本篇)
  • 卷 3:Django Ninja 介紹——與 Django REST framework 主要區別

第二章:範例專案與環境設定

介紹系列的範例專案——Django-Ninja-Tutorial,透過具體的程式碼改動,作為學習過程中的參考。(覺得專案有用心的話,千萬不要吝嗇你的 🌟 哦!🥰)

範例專案:Django-Ninja-Tutorial

範例程式碼是學習新技術的良師益友,也是我的嘔心瀝血之作 😭

我們也會介紹專案所使用的 Python 開發工具,讓讀者能體驗真實的開發環境。

最後,我們會一步一步帶著你,讓專案能夠在你的本機環境運行。

  • 卷 4:API 範例專案介紹
  • 卷 5:Python 現代開發工具介紹
  • 卷 6:環境設定 × 如何使用本專案

第三章:Django Ninja 基本功

Django Ninja 的核心部分,任何一個 API 開發者都需要熟悉的基本功。

本章總共分成三大部分:路由、請求與回應

第一節:路由(Routers)

端點(endpoints)與路由是 API 的起點。

Django Ninja 的路由設定方式,與傳統 Django 有很大不同。因此,我們將路由放在第一位,作為學習 API 開發的入口。

  • 卷 7:路由(上)傳統 Django 路由做法
  • 卷 8:路由(下)Django Ninja 路由設定

第二節:請求(HTTP Request)

路由之後是 HTTP 請求,講述 Django Ninja 處理請求的三大重點:路徑參數、查詢參數和請求主體(body)。

其中最重要的是 body,將使用 Django Ninja Schema(即 Pydantic BaseModel)來進行資料接收與驗證。

  • 卷 9:請求(一)Django Ninja 處理 HTTP 請求
  • 卷 10:請求(二)路徑參數 - Path Parameters
  • 卷 11:請求(三)查詢參數 - Query Parameters
  • 卷 12:請求(四)Request Body 與 Schema 介紹

第三節:回應(HTTP Response)

請求之後是回應,回應仍需要使用 Schema,但變化比請求更多。

本節將介紹回應的基本架構、處理方式、巢狀 Schema,以及 Resolver 方法。

  • 卷 13:回應(一)Django Ninja 處理 HTTP 回應
  • 卷 14:回應(二)用 Schema 建立巢狀結構回應
  • 卷 15:回應(三)為何不用 ModelSchema?——相比 DRF,我更偏愛 Django Ninja 的理由
  • 卷 16:回應(四)Resolver 方法——欄位資料格式化

第四章:API 文件

掌握了 Django Ninja 如何處理請求與回應後,剩下的另一關鍵就是 API 文件。

API 文件的品質與可讀性對 API 使用者至關重要,本章將介紹 Django Ninja 在自動化產生 API 文件中的應用,並分享我認為的一些好的實踐。

  • 卷 17:API 文件(上)Django Ninja 文件實踐指南
  • 卷 18:API 文件(下)Pydantic Field 設定範例與預設值

第五章:資料驗證與錯誤處理

資料驗證和錯誤處理關係到 API 的穩定與可靠。本章探討如何在 Django Ninja 中有效進行資料驗證和錯誤捕捉,並給出合理、正確的回應。

  • 卷 19:資料驗證(上)Pydantic 單一欄位驗證
  • 卷 20:資料驗證(下)Pydantic 跨欄位驗證
  • 卷 21:錯誤處理(上)HttpError 與自定義 HTTP 回應
  • 卷 22:錯誤處理(下)全域錯誤處理——使用 Exception Handlers

第六章:API 進階功能

雖說是入門,但我們仍有必要介紹 API 的常見進階功能。這些技術將協助你應對大型專案中的典型挑戰。

我們會引導你完成每個功能的實作,同時聚焦展示它們的概念與應用場景。你可以根據這些內容,進一步自行深入學習與應用。

  • 卷 23:檔案上傳——Django UploadedFile 介紹
  • 卷 24:分頁(上)Django Ninja 的內建分頁器
  • 卷 25:分頁(下)自定義分頁類別
  • 卷 26:資料查詢與過濾(上)FilterSchema 介紹
  • 卷 27:資料查詢與過濾(下)FilterSchema 多欄位查詢

第七章:認證與單元測試

本章將介紹後端專案中不可或缺的主題,雖然核心部分不是由 Django Ninja 實作,但對於後端開發者來說,是必須掌握的技能。

  • 卷 28:身分認證——Session 認證與全域設定
  • 卷 29:單元測試——使用 Test Client 與 pytest 測試 API

第八章:系列回顧與完賽心得

簡單回顧整個系列,並分享我在本次鐵人賽的創作心得與感想。

  • 卷 30:系列回顧與完賽心得

結語

通過這篇導覽,你已經對整個系列的架構有了清晰的認識。接下來的每一篇文章都會按照這個藍圖,循序漸進地帶領你學習 Django Ninja。

下一篇,我們將正式介紹 Django Ninja,並與老牌的 Django REST Framework 進行比較,了解兩者在 API 開發的主要功能差異與適用場景。

本文同步發表於我的部落格——Code and Me


上一篇
卷 1:系列導讀 × 目標讀者
下一篇
卷 3:Django Ninja 介紹——與 Django REST Framework 主要區別
系列文
Django 忍法帖——Django Ninja 入門指南31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言